package cn.com.commons.result;

/**
 * 
 * 代码或方法执行以后的一个最终状态，它封装更加标准而且详细的内容。
 * 
 * @param <T>
 *            通过<code>T</code>可以为
 * @since 2012-02-29
 * @version 1.0
 * @author Microbun
 */
public interface Result<T> {

	/**
	 * 判断是否执行成功
	 * 
	 * @return 成功返回<code>true</code>,失败返回<code>false</code>
	 */
	public boolean isSucceed();

	/**
	 * 标记{@link Result}的是否执行成功
	 * 
	 * @param state
	 *            如果为<code>true</code>表示成功，如果为<code>false</code>失败
	 */
	public void setSucceed(boolean state);

	/**
	 * 获取数据
	 * 
	 * @return data 这个数据类型是泛型指定的类型
	 */
	public T getData();

	/**
	 * 设置数据
	 */
	public void setData(T data);

}
